import { NextRequest, NextResponse } from 'next/server';
import { verifyJwtToken } from '@/lib/auth/jwt';

export async function GET(request: NextRequest) {
  try {
    // 从请求头获取 token
    const authHeader = request.headers.get('Authorization');
    
    // 如果没有Authorization头，尝试从cookie获取
    let token;
    if (!authHeader || !authHeader.startsWith('Bearer ')) {
      // 尝试获取cookie中的token (注意，API路由可能无法直接访问客户端cookie)
      const cookieHeader = request.headers.get('cookie');
      if (cookieHeader) {
        const tokenMatch = cookieHeader.match(/auth-token=([^;]+)/);
        token = tokenMatch ? tokenMatch[1] : null;
      }
      
      if (!token) {
        return NextResponse.json(
          { success: false, message: '未授权' },
          { status: 401 }
        );
      }
    } else {
      token = authHeader.split(' ')[1];
    }
    
    const payload = await verifyJwtToken(token);
    
    if (!payload) {
      return NextResponse.json(
        { success: false, message: '无效的 token' },
        { status: 401 }
      );
    }

    // 在实际应用中，您应该查询数据库获取最新的用户信息
    // 这里我们直接从 token 中提取用户信息
    const user = {
      id: payload.sub,
      email: payload.email,
      name: payload.name,
      role: payload.role,
    };

    return NextResponse.json({
      success: true,
      message: '获取用户信息成功',
      status: 200,
      data: {
        user,
        token, // 返回原始 token
      }
    });
  } catch (error) {
    console.error('获取用户信息错误', error);
    return NextResponse.json(
      { success: false, message: '获取用户信息失败' },
      { status: 500 }
    );
  }
} 